﻿// 功能：列表控件中的列表项
// 描述：
// 作者：温伟鹏
// 日期：2010/5/20 14:14:04

using System;

namespace MeizuSDK.Presentation
{
    /// <summary>
    /// 列表控件中的列表项
    /// </summary>
    public class ListItem
    {
        #region 私有变量

        private ListBox owner;

        private string text;
        private object value;

        private bool selected;
        #endregion

        #region 公共属性
        /// <summary>
        /// 获取或设置此列表项所属的列表控件
        /// </summary>
        internal ListBox Owner
        {
            get
            {
                return this.owner;
            }
            set
            {
                this.owner = value;
            }
        }
        /// <summary>
        /// 获取或设置列表项显示的文本
        /// </summary>
        public string Text
        {
            get
            {
                return this.text;
            }
            set
            {
                if (value != this.text)
                {
                    this.text = value;
                }
            }
        }
        /// <summary>
        /// 获取或设置与列表项关联的值
        /// </summary>
        public object Value
        {
            get
            {
                return this.value;
            }
            set
            {
                if (value != this.value)
                {
                    this.value = value;
                }
            }
        }
        /// <summary>
        /// 获取列表项是否被选中
        /// </summary>
        public bool Selected
        {
            get
            {
                return selected;
            }
            internal set
            {
                if (value != selected)
                {
                    selected = value;
                }
            }
        }
        #endregion

        #region 构造函数
        /// <summary>
        /// 构造列表项实例
        /// </summary>
        public ListItem()
            : this(string.Empty, null)
        {

        }
        /// <summary>
        /// 构造列表项实例
        /// </summary>
        /// <param name="text">列表项文本</param>
        /// <param name="value">列表项绑定值</param>
        public ListItem(string text, object value)
        {
            this.text = text;
            this.value = value;
        }
        #endregion
    }
}
